home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
et
/
et3_0-a1.lha
/
et3
/
src
/
Invariant.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-04-27
|
996b
|
35 lines
#ifndef Invariant_First
#ifdef __GNUG__
//pragma once
#pragma interface
#endif
#define Invariant_First
#include "Types.h"
#include "Error.h"
#ifdef NO_INVCHECK
# define InvariantChecker(name)
# define AssertInvariant(name)
#else
# define InvariantChecker(name) \
class _NAME2_(name,InvChecker) { \
name *obj; \
public: \
_NAME2_(name,InvChecker)(name *o) \
{ obj= o; obj->CheckInvariant(); } \
~_NAME2_(name,InvChecker)() \
{ obj->CheckInvariant(); } \
}
# define AssertInvariant(name) \
_NAME2_(name,InvChecker) __checkInv(this)
#endif
#endif